package com.eianiao.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;

//表示这是一个配置类。
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {

        //追加两个路径进来，告诉springMVC已经遇到什么样的请求地址，就到backend 和 front 文件夹里面去找资源
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
    }


    // 扩展消息转换器，追加jackson 转化 LONG类型成 String类的代码
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

        //构建消息转化器
        MappingJackson2HttpMessageConverter mc = new MappingJackson2HttpMessageConverter();

        //2. 把刚才写的转化器设置到这个mc对象中
        mc.setObjectMapper(new JacksonObjectMapper());

        //3. 把mc对象放置到集合里面, 在这个convers集合里面，已经存在了这种转换器MappingJackson2HttpMessageConverter
        // 它所处的下标是  7 ，必须要让我们自己的转换器对象 mc 位于它的前面，所以这里需要设置下标。表示
        // 把我们的这个mc 转换器放置在第几个位置。
        converters.add(0,mc);
    }



}
